import os
import json

# 类别映射：中文 -> 英文标识符
cls_names = ['ZhCMFangBao', 'ZhCMFuKuang', 'ZhCMNaKuang', 'ZhCMZhanLi',
             'BMFangBao', 'BMZhanLi', 'AnJianYuan', 'Other']
china_cls_names = ['正侧面放包', '正侧面扶框', '正侧面拿框', '正侧面站立',
                   '背面放包', '背面站立', '安检员', '其他']

# 构建翻译映射表
translation_map = dict(zip(china_cls_names, cls_names))

# 递归替换函数
def replace_chinese_with_map(data, mapping):
    if isinstance(data, dict):
        return {k: replace_chinese_with_map(v, mapping) for k, v in data.items()}
    elif isinstance(data, list):
        return [replace_chinese_with_map(item, mapping) for item in data]
    elif isinstance(data, str) and data in mapping:
        return mapping[data]
    else:
        return data

# 处理单个文件的函数
def process_json_file(file_path, output_path=None):
    with open(file_path, 'r', encoding='utf-8') as f:
        json_data = json.load(f)

    # 替换中文为英文标识符
    translated_data = replace_chinese_with_map(json_data, translation_map)

    # 如果未指定输出路径，则覆盖原文件
    save_path = output_path if output_path else file_path

    with open(save_path, 'w', encoding='utf-8') as f:
        json.dump(translated_data, f, ensure_ascii=False, indent=4)

    print(f"已处理并保存: {save_path}")

# 处理整个目录的函数
def process_json_directory(directory):
    for root, _, files in os.walk(directory):
        for file in files:
            if file.lower().endswith('.json'):
                file_path = os.path.join(root, file)
                process_json_file(file_path)

# 设置你的 JSON 文件夹路径
json_directory = r'D:\DATA\20250519RENBAO\caitu\20250527_annotated_100_200'  # 修改为你自己的目录路径

# 开始处理
process_json_directory(json_directory)


# # 20250507
# 1 解决第一次运行图片和步骤不匹配问题；调整硬触发取图逻辑camera/factory.py，经客户测试ok
# 2 解决动态曝光不同步问题，更改动态曝光策略，经客户测试ok
# 3 测试当前客户制作的5种ng品，保险片，母端子，pin针等，收集数据迭代算法后，经客户测试检查ok
# 4 核对训练数据，修正蓝色保险片字符标注错误，解决蓝色保险片字符误检问题。
# 5 完善扫码逻辑，不区分大小写
# 6 补充小保险盒保险片逻辑
#
#
# 津住保险盒检测，honey自动包装机，福霸焊锡，压装等项目资料和交接文档编写以及后续支持